//现有张三、李四和王五3个人，张三说李四在说谎，李四说王五在说谎，而王五说张三和李四两人都在说谎。要求编程求出这3个人中到底谁说的是真话，谁说的是假话。

#include<stdio.h>
int main()
{
    int x, y, z;
    for(x=0; x<=1; x++)
        for(y=0; y<=1; y++)
            for(z=0; z<=1; z++)
                if( ((x&&!y) || (!x&&y)) && ((y&&!z) || (!y&&z)) && ((z&&x==0&&y==0) || (!z&&x+y!=0)) )
                {
                    printf("张三说的是%s.\n",x?"真话":"假话");
                    printf("李四说的是%s.\n",y?"真话":"假话");
                    printf("王五说的是%s.\n",z?"真话":"假话");
                   
                }
    return 0;
}

//运行结果：

//张三说的是假话.
//李四说的是真话.
//王五说的是假话.
